﻿using System;
using Onshi.POS.Modelo.Entidades.Tipos;
using Onshi.POS.Modelo.Enumeradores;
using Onshi.POS.Modelo.Objetos;

namespace Onshi.POS.Modelo.Entidades
{
    [Serializable()]
    public class Vendedor : Persona<RubroVendedor, RegistroVendedor, DomicilioVendedor, TelefonoVendedor, DetalleVendedor>
    {
        #region Constructores

        public Vendedor()
            : base()
        {
        }

        #endregion

        #region Atributos

        private TipoComisionVendedor tipoComision;
        private Decimal comisionMaxima;
        private Decimal comision;

        #endregion

        #region Propiedades

        public Decimal ComisionMaxima
        {
            get { return comisionMaxima; }
            set { comisionMaxima = value; }
        }

        public Decimal Comision
        {
            get { return comision; }
            set { comision = value; }
        }

        public TipoComisionVendedor TipoComision
        {
            get { return tipoComision; }
            set { tipoComision = value; }
        }

        public String ComisionConFormato
        {
            get
            {
                var formato = String.Empty;
                switch ((EnumTipoComisionVendedor)TipoComision.Id)
                {
                    case EnumTipoComisionVendedor.MONTO_FIJO:
                        formato = Formato.Moneda(Comision);
                        break;
                    case EnumTipoComisionVendedor.PORCENTAJE_DE_LA_GANANCIA:
                    case EnumTipoComisionVendedor.PORCENTAJE_DE_VENTA:
                        formato = Formato.Porcentaje(Comision);
                        break;
                }
                return formato;
            }
        }

        public String ComisionMaximaConFormato
        {
            get
            {
                var formato = String.Empty;
                switch ((EnumTipoComisionVendedor)TipoComision.Id)
                {
                    case EnumTipoComisionVendedor.PORCENTAJE_DE_LA_GANANCIA:
                    case EnumTipoComisionVendedor.PORCENTAJE_DE_VENTA:
                        formato = Formato.Moneda(ComisionMaxima);
                        break;
                }
                return formato;
            }
        }

        #endregion
    }
}
